package com.caiyouxi.user.model;

import java.io.Serializable;
import java.util.Date;

/**
 * Created by Administrator on 2017/11/13.
 */
public class UserAccountsBean implements Serializable {
    /**
     * ID
     */
    private Integer id;
    /**
     * 该账号所属用户的编号。
     * 同一个用户对于同一个source + open_id的记录只能有一条。
     */
    private Integer user_id;
    /**
     * 账号在来源方的统一编号。
     * 如果是 PHONE，则显示为手机号码；
     * 如果有是 EMAIL，则显示为邮件地址；
     * 其他则为对应提供方的 open_id。
     */
    private String open_id;
    /**
     * 账号来源。有以下值之一：
     * WECHAT:通过微信账号登录注册；
     * WEIBO：通过新浪微博账号登录注册；
     * QQ：通过 QQ 账号登录注册；
     * EMAIL：通过电子邮件注册；
     * PHONE：通过手机号码注册。
     * TICAIBAO：体彩报用户。
     * 其他的第三方单独定义。
     */
    private String source;
    /**
     * 登录验证方式。
     * 有以下值之一：
     * OAUTH2；
     * SMSCODE；
     * PASSWORD；
     * WECHAT
     */
    private String auth_protocol;
    /**
     * 该账号在来源的昵称。
     * 如果是 PHONE 或 EMAIL，则显示为对应的带掩码的文本作为昵称。
     */
    private String nickname;
    /**
     * 授权码。如果验证协议是 phone，这里保存的是短信验证码
     */
    private String access_token;
    /**
     * 生成时间
     */
    private Date token_create_time;
    /**
     * 失效时间
     */
    private Date token_expire_time;
    /**
     * 该账号绑定到 user_profile 的时间
     */
    private java.util.Date bind_time;
    /**
     * 有些第三方的账号我们可能不系统登录到我们的其他平台，这里记录不希望登录的平台代号。
     */
    private String forbidden_Login_areas;
    /**
     * 该账号最近一次登录的情况
     */
    private String  last_log;

    /**
     * 预留的可扩展字段。比如从微信登录的话，可以保存微信登录接口返回过来的微信用户数据
     */
    private Object data;

    public UserAccountsBean() {
    }

    public UserAccountsBean(String open_id, String source) {
        this.open_id = open_id;
        this.source = source;
    }

    public UserAccountsBean(Integer user_id, String source) {
        this.user_id = user_id;
        this.source = source;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getUser_id() {
        return user_id;
    }

    public void setUser_id(Integer user_id) {
        this.user_id = user_id;
    }

    public String getOpen_id() {
        return open_id;
    }

    public void setOpen_id(String open_id) {
        this.open_id = open_id;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getAuth_protocol() {
        return auth_protocol;
    }

    public void setAuth_protocol(String auth_protocol) {
        this.auth_protocol = auth_protocol;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getAccess_token() {
        return access_token;
    }

    public void setAccess_token(String access_token) {
        this.access_token = access_token;
    }

    public Date getToken_create_time() {
        return token_create_time;
    }

    public void setToken_create_time(Date token_create_time) {
        this.token_create_time = token_create_time;
    }

    public Date getToken_expire_time() {
        return token_expire_time;
    }

    public void setToken_expire_time(Date token_expire_time) {
        this.token_expire_time = token_expire_time;
    }

    public Date getBind_time() {
        return bind_time;
    }

    public void setBind_time(Date bind_time) {
        this.bind_time = bind_time;
    }

    public String getForbidden_Login_areas() {
        return forbidden_Login_areas;
    }

    public void setForbidden_Login_areas(String forbidden_Login_areas) {
        this.forbidden_Login_areas = forbidden_Login_areas;
    }

    public String getLast_log() {
        return last_log;
    }

    public void setLast_log(String last_log) {
        this.last_log = last_log;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }
}
